home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Inverse 10
/
Inverse_10_2002-06-20_Oxygen_Side_A.d64
/
z assem 6 - unpa
< prev
next >
Wrap
Text File
|
2023-02-26
|
5KB
|
324 lines
*= $1000
source = $2000
sor = $fa
sqr = $fc
sim = $fe
sys = $02
;---------------------------------------
lda #$a0 ;przykladowe
sta sor ;wartosci
lda #$27
sta sor+1
lda #$01 ;wektor przesuniecia
sta bajt{CBM-@}a
ldy #0
lda (sor),y
bne *+3
rts ;no packing!
sta string{CBM-@}l
sta pack{CBM-@}lenght+1
lda sor
sta sqr
lda sor+1
sta sqr+1
lda sqr
sec
sbc string{CBM-@}l
sbc #5 ;ilosc zmiennych
sta sqr
bcs *+4
dec sqr+1
lda (sqr),y
sta sim
iny
lda (sqr),y
sta sim+1
jsr inc{CBM-@}sim
ldy #4
lda (sqr),y
sta bajt{CBM-@}c
lda #5
clc
adc sqr
sta sqr
bcc *+4
inc sqr+1
kh3
ldy #0
lda (sqr),y
sta pack{CBM-@}lenght
n0
jsr stack{CBM-@}to
jsr move{CBM-@}mem{CBM-@}add
jsr stack{CBM-@}from
ldy #0
lda bajt{CBM-@}c
sta (sim),y
jsr inc{CBM-@}sor
jsr inc{CBM-@}sqr
lda sim ;o miejsce w tabeli
clc
adc #3
sta sim
bcc *+4
inc sim+1
dec pack{CBM-@}lenght
lda pack{CBM-@}lenght
bne n0
dec string{CBM-@}l
lda string{CBM-@}l
beq up9
jsr inc{CBM-@}sqr
inc bajt{CBM-@}c
jmp kh3
up9
lda sor
sec
sbc pack{CBM-@}lenght+1
sbc #1
sta sor
bcs *+4
dec sor+1
lda sor
ldx sor+1
;---------------------------------------
; lda #$b3 ;wartosci
sta end{CBM-@}file ;przykladowe
; lda #$20
stx end{CBM-@}file+1
lda end{CBM-@}file+1
sta sor+1
lda end{CBM-@}file
sec
sbc #2
sta sor
bcs *+4
dec sor+1
ldy #0
lda (sor),y
sta pack{CBM-@}lenght
iny
lda (sor),y
sta pack{CBM-@}lenght+1
lda sor
sec
sbc #5 ;ignorujemy bajty
sta sor ;poczatku tablicy
bcs *+4 ;pakowania!
dec sor+1
ar0
ldy #0
lda (sor),y
sta sim
iny
lda (sor),y
sta sim+1
iny
lda (sor),y
sta bajt{CBM-@}a ;przesuniecie
m00
lda pack{CBM-@}lenght
bne m0
lda pack{CBM-@}lenght
bne m0
inc $d020 ;koniec!
jmp *-3
m0
jsr stack{CBM-@}to
jsr move{CBM-@}mem{CBM-@}add
jsr stack{CBM-@}from
ldy #0
lda (sim),y
sta (sim),y
iny
cpy bajt{CBM-@}a
bne *-6
lda sor
clc
adc bajt{CBM-@}a
sta sor
bcc *+4
inc sor+1
lda sor
sec
sbc #3 ;kolejny adres z tabeli
sta sor
bcs *+4
dec sor+1
lda pack{CBM-@}lenght
sec
sbc #1
sta pack{CBM-@}lenght
bcs *+5
dec pack{CBM-@}lenght+1
jmp ar0
rts
;---------------------------------------
inc{CBM-@}sim
lda sim
clc
adc #1
sta sim
bcc *+4
inc sim+1
rts
;+++++++++
;---------------------------------------
move{CBM-@}mem{CBM-@}add
; lda #$00 ;skad (w gore)
; sta sim
; lda #$09
; sta sim+1
; lda #$00 ;dokad
; sta sor
; lda #$0a
; sta sor+1
; lda #16 ;parametr 'move'
; sta bajt{CBM-@}a
;
lda sim
sec
sbc #1
sta sim
bcs *+4
dec sim+1
jos
ldy #0
lda (sor),y
ldy bajt{CBM-@}a ;przesuniecie
sta (sor),y
jsr dec{CBM-@}sor
lda sor
cmp sim
bne jos
lda sor+1
cmp sim+1
bne jos
rts
;++++++++++
dec{CBM-@}sor
lda sor
sec
sbc #1
sta sor
bcs *+4
dec sor+1
rts
;++++++++++
inc{CBM-@}sqr
lda sqr
clc
adc #1
sta sqr
bcc *+4
inc sqr+1
rts
;---------------------------------------
inc{CBM-@}sor
lda sor
clc
adc #1
sta sor
bcc *+4
inc sor+1
rts
;---------------------------------------
stack{CBM-@}to
lda sor
sta stack
lda sor+1
sta stack+1
lda sqr
sta stack+2
lda sqr+1
sta stack+3
lda sim
sta stack+4
lda sim+1
sta stack+5
lda bajt{CBM-@}b
sta stack+6
rts
;---------------------------------------
stack{CBM-@}from
lda stack
sta sor
lda stack+1
sta sor+1
lda stack+2
sta sqr
lda stack+3
sta sqr+1
lda stack+4
sta sim
lda stack+5
sta sim+1
lda stack+6
sta bajt{CBM-@}b
rts
;---------------------------------------
;zmienne srodowiskowe
string{CBM-@}l
.byte $00
store
.byte $00
bajt{CBM-@}a
.byte $00
bajt{CBM-@}b
.byte $00
bajt{CBM-@}c
.byte $00
;---------------------------------------
;zmienne globalne
pack{CBM-@}lenght
.byte $00,$00
end{CBM-@}file
.byte $00,$00
stack
.byte $00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00